C++ Game Engine: The Event System Guide